﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SimpleScript
{
    internal class Statement
    {

    }

    internal class Expression : Statement
    {
        public Token? Result { get; set; } = new();
        public List<Token> OperandList { get; set; } = new();
        public List<Token> OperatorList { get; set; } = new();

        public override string ToString()
        {
            if (Result == null)
            {
                return "";
            }
            else
            {
                return Result.Literal;
            }
        }

    }

    internal class Identifier : Expression
    {

    }

    internal class Literal : Expression
    {

    }

    internal class Number : Literal
    {

    }

    internal class Int : Number
    {

    }

    internal class Float : Number
    {

    }

    internal class String : Literal
    {
        public override string ToString()
        {
            return "\"" + base.ToString() + "\"";
        }
    }

    internal class Call : Statement
    {
        public Token? Function { get; set; }
        public List<Token> ParameterList { get; set; } = new();
    }
}
